package zcache


// 缓存值的抽象与封装, 使其可以支持任意类型


// 最终以byte类型存储, 支持任意数据类型: 字符串、图片等
type ByteView struct {
	b []byte
}


// 实现Value口接口
func (v ByteView) Len() int {
	return len(v.b)
}


// 基于拷贝重新生成一个数据副本并返回
func (v ByteView) ByteSlice() []byte {
	return cloneBytes(v.b)
}


// 转换为字符串
func (v ByteView) String() string {
	return string(v.b)
}


// 拷贝副本
func cloneBytes(b []byte) []byte {
	c := make([]byte, len(b))
	copy(c, b)
	return c
}